;(function(global, factory) {
	'use strict'

	if (typeof module === 'object' && typeof module.exports === 'object') {
		// For CommonJS and CommonJS-like environments where a proper `window`
		// is present, execute the factory and get jQuery.
		// For environments that do not have a `window` with a `document`
		// (such as Node.js), expose a factory as module.exports.
		// This accentuates the need for the creation of a real `window`.
		// e.g. var jQuery = require("jquery")(window);
		// See ticket #14549 for more info.
		module.exports = global.document
			? factory(global, true)
			: function(w) {
					if (!w.document) {
						throw new Error('jQuery requires a window with a document')
					}
					return factory(w)
				}
	} else {
		factory(global)
	}

	// Pass this if window is not defined yet
})(typeof window !== 'undefined' ? window : this, function(window, noGlobal) {
	var version = '3.4.1',
		// Define a local copy of jQuery
		jQuery = function(selector, context) {
			// The jQuery object is actually just the init constructor 'enhanced'
			// Need init if jQuery is called (just allow error to be thrown if not included)
			return new jQuery.fn.init(selector, context)
		}

	jQuery.fn = jQuery.prototype = {
		jquery: version,

		constructor: jQuery,

		selector: '',
		length: 0
	}

	var init = (jQuery.fn.init = function(selector, context, root) {})

	init.prototype = jQuery.fn

	if (noGlobal) {
		window.jQuery = window.$ = jQuery
	}

	return jQuery
})
